package estructurasDeDatos.List2;

import java.io.Serializable;

public class ListElement <T> implements Serializable{
	
	/**
	 * referencia al elemento anterior 
	 */
	private ListElement<T> anterior ;
	/**
	 * referencia al elemento anterior 
	 */
	private ListElement<T> siguiente ; 
	/**
	 * valor del elemento 
	 */
	private T val = null ;
	
	/**
	 * Crea un nuevo elemento de una lista
	 * @param elem valor del elemento
	 */
	public ListElement ( T elem ) { 
		val = elem ; 
		anterior = siguiente = null ;
	}
	
	/**
	 * Asigna una nueva referencia al siguiente elemento 
	 * @param listElement nueva referencia al siguiente elemento
	 */
	public void setSiguiente ( ListElement<T> listElement ) { 
		siguiente = listElement ;
	}
	
	/**
	 * Asigna una nueva referencia al anterior elemento 
	 * @param listElement nueva referencia al anterior elemento
	 */
	public void setAnterior ( ListElement < T > listElement ) { 
		anterior = listElement ; 
	}
	
	/**
	 * Retorna el siguiente elemento 
	 * @return siguiente elemento
	 */
	public ListElement<T> getSiguiente () {
		return  siguiente ;
	}
	
	/**
	 * Retorna el anterior elemento 
	 * @return anterior elemento
	 */
	public ListElement<T> getAnterior () {
		return  anterior ;
	}
	
	/**
	 * Retorna el valor del elemento
	 * @return valor del elemento
	 */
	public T getValue ( ) { 
		return val ;
	}
	
}
